// let add = x => y => x + y
//
// let add = function (x) {
//   return function (y) {
//     return x+y
//   }
// }
// let mult5 = function(z){
//   return z*5
// }
// let compose = function (f,g) {
//   return function (x) {
//     return f(g(x))
//   }
// }
//
// let mult5AfterAdd10 = compose(mult5,add(10))

let add = x => y => x + y
let mult5 = z => z * 5
let compose = (f, g) => x => f(g(x))

let filter = (pred,array)=>{
  let newArray = []
  for(let i=0;i<array.length;i++){
    if (pred(array[i])){
      newArray[newArray.length] = array[i];
    }
  }
  return newArray
}


var isOdd = x => x % 2 !== 0;
var numbers = [1, 2, 3, 4, 5];
var oddNumbers = filter(isOdd, numbers);
console.log(oddNumbers); // [1, 3, 5]
